Tugas 4 - Determinan Matriks#

A. Fungsi Determinan Matriks#

Determinan matriks adalah nilai yang dapat memberikan informasi penting tentang sifat-sifat matriks, seperti apakah matriks tersebut memiliki invers atau tidak. Fungsi untuk menghitung determinan matriks dapat ditulis menggunakan Python dengan bantuan library numpy.

Implementasi Fungsi Determinan Matrik#

Berikut adalah contoh implementasi fungsi untuk menghitung determinan matriks menggunakan numpy:

import numpy as np

def determinan_matriks(A):
    """
    Menghitung determinan matriks A menggunakan numpy.

    Args:
    A (np.ndarray): Matriks persegi A

    Returns:
    float: Determinan dari matriks A
    """
    return np.linalg.det(A)

B. Cara Hitung Determinan#

1. Matriks 2x2#

Untuk matriks berukuran 2x2, determinan dihitung dengan rumus:

\[\begin{split} {det}(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc \end{split}\]

2. Matriks 3x3#

Untuk matriks berukuran 3x3, determinan dihitung dengan ekspansi kofaktor:

\[\begin{split} {det}(A) = \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} = a(ei - fh) - b(di - fg) + c(dh - eg) \end{split}\]

3. Matriks Berukuran Lebih Besar#

Untuk matriks yang lebih besar, determinan dapat dihitung menggunakan metode ekspansi kofaktor atau eliminasi Gauss. Namun, penggunaan library numpy sangat membantu untuk menghitung determinan dengan mudah tanpa harus melalui langkah manual yang kompleks.

C. Sifat-Sifat Determinan#

Berikut adalah beberapa sifat penting dari determinan:

  1. Baris atau Kolom Nol: Jika salah satu baris atau kolom matriks adalah nol, maka determinan matriks tersebut adalah nol.

  2. Baris atau Kolom Identik: Jika dua baris atau kolom suatu matriks adalah identik, maka determinan matriks tersebut adalah nol.

  3. Pertukaran Baris atau Kolom: Jika matriks diubah dengan cara menukar dua baris atau kolomnya, maka determinan dari matriks tersebut akan berubah tanda.

  4. Penggandaan Baris atau Kolom: Jika semua elemen suatu baris atau kolom suatu matriks dikalikan dengan skalar \(K\), maka determinan dari matriks tersebut juga akan dikalikan dengan \(K\).

  5. Hasil Kali Matriks: Jika matriks \(A \) dan \(B\) adalah matriks persegi, maka \({det}(AB)\) = \({det}(A)\). \({det}(B)\)

D. Contoh Soal dan Langkah-Langkah Penyelesaian dengan Python#

Contoh Soal#

Hitung determinan dari matriks berikut:

\[\begin{split} A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} \end{split}\]

Langkah-Langkah Penyelesaian#

  1. Definisikan Matriks (A):

    import numpy as np
    
    A = np.array([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])
    
  2. Implementasikan Fungsi Determinan Matriks:

    def determinan_matriks(A):
        return np.linalg.det(A)
    
  3. Hitung Determinan Matriks (A):

    det_A = determinan_matriks(A)
    print(f"Determinan matriks A adalah: {det_A}")
    

Hasil Eksekusi#

Jalankan kode di atas pada Google Colab untuk mendapatkan hasilnya. Anda akan mendapatkan bahwa determinan matriks (A) adalah 0, yang menunjukkan bahwa matriks tersebut singular (tidak memiliki invers).

Contoh lain dengan python#

import numpy as np

#fungsi mencari determinan
def det(matriks):
    return np.linalg.det(matriks)

print("Membuktikan bahwa determinan dari matriks identitas adalah 1")
I=np.array([[1,0,0],[0,1,0],[0,0,1]])
print('Matriks i =\n', I)
print("determinan matriks i = ",det(I))

print("perubahan baris pada matriks identitas untuk mencari determinannya")
I2=np.array([[1,0,0],[0,0,1],[0,1,0]])
print("matriks i setelah diubah 1x =\n", I2)
print("determinan matriks i setelah diubah 1x = ",det(I2))
I3=np.array([[0,1,0],[0,0,1],[1,0,0]])
print("matriks i setelah diubah 2x =\n", I3)
print("determinan matriks i setelah diubah 2x =",det(I3),"\n")

print("mencari determinan c")
c = np.array([[1,2,1],[3,1,2],[2,1,2]])
print("matriks c =\n", c)
print("determinan matriks c = ",det(c).round())
d = np.array([[3,1,2],[1,2,1],[2,1,2]])
print("matriks c setelah diubah 1x =\n", d)
print("determinan matriks c setelah diubah 1x = ",det(d).round())
e = np.array([[1,2,1],[2,4,2],[2,1,2]])
print("matriks e =\n", e)
print("determinan matriks e = ",det(e).round())
print("jika baris dikalikan dengan kelipatan maka hasilnya akan 0")
f = np.array([[1,2,1],[2,4,2],[2,4,3]])
print("matriks f =\n", f)
print("determinan matriks f = ",det(f).round())
g = np.array([[6,2,4],[2,4,2],[4,2,4]])
print("matriks g =\n", g)
print("determinan matriks g = ",det(g).round())#2^3(3)-> 2=konstanta, ^3=jumlah baris yang dikalikan dengan konstanta, (3)=hasil dari det(c)
a=np.array([[3,4],[2,1]])
print("matriks a =\n", a)
print("determinan matriks a = ",det(a).round())
h=np.array([[6,8],[4,2]])
print("matriks h =\n", h)
print("determinan matriks h = ",det(h).round()) #2^2(-5)=-20
i=np.array([[6,8],[2,1]])
print("matriks i =\n", i)
print("determinan matriks i = ",det(i).round()) #jika hanya satu baris saja c det(a) = 2(-5) = -10

print("\nmengalikan salah satu kolom ")
j=np.array([[6,4],[4,1]])
print("matriks j =\n", j)
print("determinan matriks j = ",det(j).round())#hasil akan sama dengan yang salah satu baris saja yang dikalikan
Membuktikan bahwa determinan dari matriks identitas adalah 1
Matriks i =
 [[1 0 0]
 [0 1 0]
 [0 0 1]]
determinan matriks i =  1.0
perubahan baris pada matriks identitas untuk mencari determinannya
matriks i setelah diubah 1x =
 [[1 0 0]
 [0 0 1]
 [0 1 0]]
determinan matriks i setelah diubah 1x =  -1.0
matriks i setelah diubah 2x =
 [[0 1 0]
 [0 0 1]
 [1 0 0]]
determinan matriks i setelah diubah 2x = 1.0 

mencari determinan c
matriks c =
 [[1 2 1]
 [3 1 2]
 [2 1 2]]
determinan matriks c =  -3.0
matriks c setelah diubah 1x =
 [[3 1 2]
 [1 2 1]
 [2 1 2]]
determinan matriks c setelah diubah 1x =  3.0
matriks e =
 [[1 2 1]
 [2 4 2]
 [2 1 2]]
determinan matriks e =  0.0
jika baris dikalikan dengan kelipatan maka hasilnya akan 0
matriks f =
 [[1 2 1]
 [2 4 2]
 [2 4 3]]
determinan matriks f =  0.0
matriks g =
 [[6 2 4]
 [2 4 2]
 [4 2 4]]
determinan matriks g =  24.0
matriks a =
 [[3 4]
 [2 1]]
determinan matriks a =  -5.0
matriks h =
 [[6 8]
 [4 2]]
determinan matriks h =  -20.0
matriks i =
 [[6 8]
 [2 1]]
determinan matriks i =  -10.0

mengalikan salah satu kolom 
matriks j =
 [[6 4]
 [4 1]]
determinan matriks j =  -10.0
A=np.array([[3,4],[2,1]])
print("matriks A =\n", A)
print("determinan matriks A = ",det(A).round())
A1=np.array([[4,1],[2,1]])
print("matriks A1 =\n", A1)
print("determinan matriks A1 = ",det(A1).round())
A2=np.array([[7,5],[2,1]])
print("matriks A2 =\n", A2)
print("determinan matriks A2 = ",det(A2).round())#det (a2)=det (a) + det(a1)
matriks A =
 [[3 4]
 [2 1]]
determinan matriks A =  -5.0
matriks A1 =
 [[4 1]
 [2 1]]
determinan matriks A1 =  2.0
matriks A2 =
 [[7 5]
 [2 1]]
determinan matriks A2 =  -3.0
print("mencari determinan dari matriks segitiga atas")
upmatriks=np.array([[1,3,2],[0,2,2],[0,0,1]])
print("matriks up matriks =\n", upmatriks)
print("determinan matriks up matriks = ",det(upmatriks))
up2=np.array([[2,1,3],[0,4,2],[0,0,1]])
print("matriks up2 =\n", up2)
print("determinan matriks up2 =",det(up2).round()) #mencari determinannya dengan mengalikan elemen diagonalnya -> 2.4.1=8
mencari determinan dari matriks segitiga atas
matriks up matriks =
 [[1 3 2]
 [0 2 2]
 [0 0 1]]
determinan matriks up matriks =  2.0
matriks up2 =
 [[2 1 3]
 [0 4 2]
 [0 0 1]]
determinan matriks up2 = 8.0
print("mencari determinan dari matriks segitiga bawah")
undermatriks=np.array([[1,0,0],[1,2,0],[1,2,1]])
print("matriks undermatriks =\n", undermatriks)
print("determinan matriks undermatriks = ",det(undermatriks))
under2 = np.array([[1,0,0],[2,4,0],[1,3,2]])
print("matriks under2 =\n", under2)
print("determinan matriks under2 = ",det(under2).round()) #mencari determinannya dengan mengalikan elemen diagonalnya -> 1.4.2=8
mencari determinan dari matriks segitiga bawah
matriks undermatriks =
 [[1 0 0]
 [1 2 0]
 [1 2 1]]
determinan matriks undermatriks =  2.0
matriks under2 =
 [[1 0 0]
 [2 4 0]
 [1 3 2]]
determinan matriks under2 =  8.0
print("determinan matriks C = det(A)det(B)")
CA = np.array([[2,1],[1,1]])
print("matriks CA =\n", CA)
print("determinan matriks CA = ",det(CA))
CB = np.array([[1,1],[1,1]])
print("matriks CB =\n", CB)
print("determinan matriks CB = ",det(CB))
CC = np.array([[3,3],[2,2]])
print("matriks CC =\n", CC)
print("determinan matriks cobaC = ",det(CC))
print("terbukti bahwa det(CC) = det(CA)det(CB)")
determinan matriks C = det(A)det(B)
matriks CA =
 [[2 1]
 [1 1]]
determinan matriks CA =  1.0
matriks CB =
 [[1 1]
 [1 1]]
determinan matriks CB =  0.0
matriks CC =
 [[3 3]
 [2 2]]
determinan matriks cobaC =  0.0
terbukti bahwa det(CC) = det(CA)det(CB)